package com.xxxtea.service;

import com.xxxtea.entity.Task;
import com.xxxtea.entity.TaskStage;
import com.xxxtea.mapper.TaskMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 任务服务类
 * 
 * 负责任务相关的业务逻辑处理，包括：
 * - 任务信息的查询和管理
 * - 为任务设置阶段信息
 * 
 * @author badman
 * @since 1.0.0
 */
@Service
public class TaskService extends BaseService<TaskMapper, Task> {
	
	/**
	 * 任务阶段服务，用于查询任务的阶段信息
	 */
	@Resource
	private TaskStageService taskStageService;

	/**
	 * 为任务列表设置阶段信息
	 * 
	 * 查询每个任务的所有阶段，并按状态倒序排序，设置到任务对象中
	 * 
	 * @param tasks 任务列表
	 */
	public void setTaskStages(List<Task> tasks) {
		// 检查任务列表是否为空
		if (tasks.isEmpty()) {
			return;
		}
		// 为每个任务查询并设置阶段信息
		for (Task task : tasks) {
			List<TaskStage> taskStages = taskStageService.lambdaQuery().eq(TaskStage::getTaskId, task.getId())
					.orderByDesc(TaskStage::getStatus).list();
			task.setTaskStages(taskStages);
		}
	}
}